package cn.tedu.reflect;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;

public class ReflectDemo02 {
    public static void main(String[] args) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
        ArrayList<String> list=new ArrayList<>();//底层Object[]
        list.add("100");
        //list.add(200);//编译时不能直接将200放入集合
        //请基于反射技术将200存储集合
        Class<?> cls = list.getClass();
        Method method = cls.getDeclaredMethod("add", Object.class);
        method.invoke(list,200);
        //最后输出
        System.out.println(list);//[100,200]
        //总结，泛型是编译的一种类型，在运行时会被擦除，所以可以使用反射技术，将200放入集合

    }
}
